package v2.chapter3.mq.test3;

import java.io.IOException;

import com.ibm.mq.*;

public class MQSample {

	// 定义队列管理器名称
	private String qManager = "QM1";
	// 定义队列管理器
	private MQQueueManager qMgr;

	public MQSample() {
		try {
			// 创建队列管理器链接
			qMgr = new MQQueueManager(qManager);

			// 设置队列打开方式
			int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT;

			// 指定打开的队列，并设置队列打开方式
			MQQueue system_default_local_queue = qMgr.accessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE", openOptions);
			// 创建一个简单的WMQ消息，以UTF格式写入
			MQMessage hello_world = new MQMessage(); 
			hello_world.writeUTF("Hello World");
			
			// 指定消息发送选项
			// 默认 MQPMO_DEFAULT
			MQPutMessageOptions pmo=new MQPutMessageOptions();
			// 将消息放入到队列
			system_default_local_queue.put(hello_world, pmo);
			
			MQMessage retrivevedMessage=new MQMessage();
			retrivevedMessage.messageId=hello_world.messageId;
			
			MQGetMessageOptions gmo=new MQGetMessageOptions();
			system_default_local_queue.get(retrivevedMessage,gmo);
			
			String msgTest=retrivevedMessage.readUTF();
			System.out.println("The message is:"+msgTest);
			
			system_default_local_queue.close();
			
			qMgr.disconnect();

		} catch (MQException e) {
			System.out.println("A WebSphere MQ error occurred: Completion code:" + e.completionCode + " Reason code:"
					+ e.reasonCode);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		new MQSample();
	}
}
